package cn.bonoon.kernel.menus;

import cn.bonoon.kernel.Xpathable;

/**
 * 这是一个具体可访问的功能，频道和菜单都可以定义成一个可访问的功能。
 * 特殊情况：
 * 1. {@link TabItemDefinition}选项卡的页面的内容，不是一个菜单项
 * 2. {@link ActionDefinition} 定义的是一个操作权限的控制项
 * 
 * @author jackson
 * @see ModuleDefinition
 * @see MenuableDefinition
 * @see MenuDefinition
 * @see ChannelDefinition
 * @see TabsDefinition
 * @see TabItemDefinition
 * @see ActionDefinition
 */
public interface ItemableDefinition extends Xpathable{
	
	/** 用于生成的checkbox的名称，这个可能需要被修改？ */
	String CHECKER_NAME = "privileges";
	
	/** 菜单项的Id */
	String getId();
	
	/** 菜单项的名称 */
	String getName();
	
	/** 菜单项所在的子系统 */
	ModuleDefinition getModule();

	/** 菜单项所在的频道，如果本身就是频道的，则返回自己 */
	ChannelDefinition getChannel();

}
